Sophisticated graphics packages have been used for some time in expensive computer design and graphics systems. Increased capabilities of graphics controllers and display systems, combined with standardized graphics languages, have made complex graphics functions available in even the most routine applications. For example, word processor, spread sheets and desktop publishing packages now include relatively sophisticated graphics capabilities. Three-dimensional (3D) displays have become common in games, animation, and multimedia communication and drawing packages.
The availability of sophisticated graphics in PCs has driven a demand for even greater graphics capabilities. To obtain these capabilities, graphics systems must be capable of performing more sophisticated functions in less time to process greater amounts of graphical data required by modern software applications. In particular, there is a continuing need for improvements in software and hardware implementations to draw three-dimensional objects using full color, texture mapping and transparency blending.
Improvements have been made in the hardware realm. Graphics processors and accelerators are available with software drivers for handling two dimensional (2D) and three dimensional (3D) graphics applications. Existing prior art graphics systems either support 2D graphics engines or 3D graphics engines to run graphics applications. In either configuration, applications from one configuration are, in many cases, not able to perform satisfactorily in the other. For example, in a 2D system, 3D applications may run slowly and may not have characteristic three dimensional graphics features such as depth values of objects which are displayed in a 2D system.
Similarly, 2D applications running in 3D systems may lack 3D features such as texture, depth values and transparency blending of objects displayed. Consequently, many prior art graphics systems are designed only to support either a 2D application or a 3D application.
The rendering or interpolation of the graphics primitive in graphics applications is very process intensive, especially in 3D graphics, which requires the graphics processor to take control of the computer system bus or establish a dedicated communication link with the CPU. However, since prior art graphics processors do not have system bus mastering capabilities, these graphics processor have to depend on the CPU to handle a bulk of the processing of graphics data in the computer system.
Relying on the CPU to process most of the graphics data means that the graphics processor has to compete with other system resources for the CPU's bus bandwidth. This can be time consuming and may lead to the loss of graphics data from the time the data are processed until displayed on a display screen, depending on the other processes running in the computer system. This may also affect the overall system performance in the computer system if many graphics applications are being run on the system.
Some prior art graphics systems implement both 2D and 3D graphics rendering capabilities in the same graphics processor. In these prior art systems, the graphics processor has a 2D drawing engine which processes 2D graphics data and instructions and a 3D drawing engine which processes 3D data and instructions. Although such prior art systems are configured to handle 2D and 3D graphics data, problems often occur in simultaneously processing 2D and 3D data. Typically when the native applications are running, (i.e. 3D applications in a 3D system and 2D applications in a 2D system), the other graphics applications cannot interrupt the native application until the system has completed processing the native application. Furthermore, many prior art systems have no means of prioritizing graphics operations in the system. Thus, each graphics application will have the same access priority to graphics resources in the computer system. Such a system configuration can therefore have a deleterious effect on the overall system performance of the computer system.
Thus, an arbitration method is needed for of providing a graphics system which can support 2D and 3D graphics operations with prioritizing capabilities to allow an implementation of predetermined priorities in accessing system resources.